import java.util.Stack;

public class Solution {
    public int evalRPN(String[] tokens) {//给你一个字符串数组 tokens ，表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。
        Stack<Integer> stack=new Stack();
        int length=tokens.length;
        for(int i=0;i<length;i++){
            String s=tokens[i];
            if(!isCharacter(s)){
                stack.push(Integer.parseInt(s));
            }else{
                int a=stack.pop();
                int b=stack.pop();
                switch(s){
                    case"+":stack.push(a+b);
                        break;
                    case"-":stack.push(b-a);//顺序容易搞反
                        break;
                    case"*":stack.push(a*b);
                        break;
                    case"/":stack.push(b/a);
                        break;
                }
            }
        }
        return stack.pop();
    }

    private boolean isCharacter(String s){
        if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")){
            return true;
        }
        return false;
    }
}

